﻿#light

namespace Vim
open System

module internal DigraphUtil =

    let DefaultDigraphs =
        [|
            ("NU", 0);
            ("SH", 1);
            ("SX", 2);
            ("EX", 3);
            ("ET", 4);
            ("EQ", 5);
            ("AK", 6);
            ("BL", 7);
            ("BS", 8);
            ("HT", 9);
            ("LF", 10);
            ("VT", 11);
            ("FF", 12);
            ("CR", 13);
            ("SO", 14);
            ("SI", 15);
            ("DL", 16);
            ("D1", 17);
            ("D2", 18);
            ("D3", 19);
            ("D4", 20);
            ("NK", 21);
            ("SY", 22);
            ("EB", 23);
            ("CN", 24);
            ("EM", 25);
            ("SB", 26);
            ("EC", 27);
            ("FS", 28);
            ("GS", 29);
            ("RS", 30);
            ("US", 31);
            ("SP", 32);
            ("Nb", 35);
            ("DO", 36);
            ("At", 64);
            ("<(", 91);
            ("//", 92);
            (")>", 93);
            ("'>", 94);
            ("'!", 96);
            ("(!", 123);
            ("!!", 124);
            ("!)", 125);
            ("'?", 126);
            ("DT", 127);
            ("PA", 128);
            ("HO", 129);
            ("BH", 130);
            ("NH", 131);
            ("IN", 132);
            ("NL", 133);
            ("SA", 134);
            ("ES", 135);
            ("HS", 136);
            ("HJ", 137);
            ("VS", 138);
            ("PD", 139);
            ("PU", 140);
            ("RI", 141);
            ("S2", 142);
            ("S3", 143);
            ("DC", 144);
            ("P1", 145);
            ("P2", 146);
            ("TS", 147);
            ("CC", 148);
            ("MW", 149);
            ("SG", 150);
            ("EG", 151);
            ("SS", 152);
            ("GC", 153);
            ("SC", 154);
            ("CI", 155);
            ("ST", 156);
            ("OC", 157);
            ("PM", 158);
            ("AC", 159);
            ("NS", 160);
            ("!I", 161);
            ("Ct", 162);
            ("Pd", 163);
            ("Cu", 164);
            ("Ye", 165);
            ("BB", 166);
            ("SE", 167);
            ("':", 168);
            ("Co", 169);
            ("-a", 170);
            ("<<", 171);
            ("NO", 172);
            ("--", 173);
            ("Rg", 174);
            ("'m", 175);
            ("DG", 176);
            ("+-", 177);
            ("2S", 178);
            ("3S", 179);
            ("''", 180);
            ("My", 181);
            ("PI", 182);
            (".M", 183);
            ("',", 184);
            ("1S", 185);
            ("-o", 186);
            (">>", 187);
            ("14", 188);
            ("12", 189);
            ("34", 190);
            ("?I", 191);
            ("A!", 192);
            ("A'", 193);
            ("A>", 194);
            ("A?", 195);
            ("A:", 196);
            ("AA", 197);
            ("AE", 198);
            ("C,", 199);
            ("E!", 200);
            ("E'", 201);
            ("E>", 202);
            ("E:", 203);
            ("I!", 204);
            ("I'", 205);
            ("I>", 206);
            ("I:", 207);
            ("D-", 208);
            ("N?", 209);
            ("O!", 210);
            ("O'", 211);
            ("O>", 212);
            ("O?", 213);
            ("O:", 214);
            ("*X", 215);
            ("O/", 216);
            ("U!", 217);
            ("U'", 218);
            ("U>", 219);
            ("U:", 220);
            ("Y'", 221);
            ("TH", 222);
            ("ss", 223);
            ("a!", 224);
            ("a'", 225);
            ("a>", 226);
            ("a?", 227);
            ("a:", 228);
            ("aa", 229);
            ("ae", 230);
            ("c,", 231);
            ("e!", 232);
            ("e'", 233);
            ("e>", 234);
            ("e:", 235);
            ("i!", 236);
            ("i'", 237);
            ("i>", 238);
            ("i:", 239);
            ("d-", 240);
            ("n?", 241);
            ("o!", 242);
            ("o'", 243);
            ("o>", 244);
            ("o?", 245);
            ("o:", 246);
            ("-:", 247);
            ("o/", 248);
            ("u!", 249);
            ("u'", 250);
            ("u>", 251);
            ("u:", 252);
            ("y'", 253);
            ("th", 254);
            ("y:", 255);
            ("A-", 0256);
            ("a-", 0257);
            ("A(", 0258);
            ("a(", 0259);
            ("A;", 0260);
            ("a;", 0261);
            ("C'", 0262);
            ("c'", 0263);
            ("C>", 0264);
            ("c>", 0265);
            ("C.", 0266);
            ("c.", 0267);
            ("C<", 0268);
            ("c<", 0269);
            ("D<", 0270);
            ("d<", 0271);
            ("D/", 0272);
            ("d/", 0273);
            ("E-", 0274);
            ("e-", 0275);
            ("E(", 0276);
            ("e(", 0277);
            ("E.", 0278);
            ("e.", 0279);
            ("E;", 0280);
            ("e;", 0281);
            ("E<", 0282);
            ("e<", 0283);
            ("G>", 0284);
            ("g>", 0285);
            ("G(", 0286);
            ("g(", 0287);
            ("G.", 0288);
            ("g.", 0289);
            ("G,", 0290);
            ("g,", 0291);
            ("H>", 0292);
            ("h>", 0293);
            ("H/", 0294);
            ("h/", 0295);
            ("I?", 0296);
            ("i?", 0297);
            ("I-", 0298);
            ("i-", 0299);
            ("I(", 0300);
            ("i(", 0301);
            ("I;", 0302);
            ("i;", 0303);
            ("I.", 0304);
            ("i.", 0305);
            ("IJ", 0306);
            ("ij", 0307);
            ("J>", 0308);
            ("j>", 0309);
            ("K,", 0310);
            ("k,", 0311);
            ("kk", 0312);
            ("L'", 0313);
            ("l'", 0314);
            ("L,", 0315);
            ("l,", 0316);
            ("L<", 0317);
            ("l<", 0318);
            ("L.", 0319);
            ("l.", 0320);
            ("L/", 0321);
            ("l/", 0322);
            ("N'", 0323);
            ("n'", 0324);
            ("N,", 0325);
            ("n,", 0326);
            ("N<", 0327);
            ("n<", 0328);
            ("'n", 0329);
            ("NG", 0330);
            ("ng", 0331);
            ("O-", 0332);
            ("o-", 0333);
            ("O(", 0334);
            ("o(", 0335);
            ("O\"", 0336);
            ("o\"", 0337);
            ("OE", 0338);
            ("oe", 0339);
            ("R'", 0340);
            ("r'", 0341);
            ("R,", 0342);
            ("r,", 0343);
            ("R<", 0344);
            ("r<", 0345);
            ("S'", 0346);
            ("s'", 0347);
            ("S>", 0348);
            ("s>", 0349);
            ("S,", 0350);
            ("s,", 0351);
            ("S<", 0352);
            ("s<", 0353);
            ("T,", 0354);
            ("t,", 0355);
            ("T<", 0356);
            ("t<", 0357);
            ("T/", 0358);
            ("t/", 0359);
            ("U?", 0360);
            ("u?", 0361);
            ("U-", 0362);
            ("u-", 0363);
            ("U(", 0364);
            ("u(", 0365);
            ("U0", 0366);
            ("u0", 0367);
            ("U\"", 0368);
            ("u\"", 0369);
            ("U;", 0370);
            ("u;", 0371);
            ("W>", 0372);
            ("w>", 0373);
            ("Y>", 0374);
            ("y>", 0375);
            ("Y:", 0376);
            ("Z'", 0377);
            ("z'", 0378);
            ("Z.", 0379);
            ("z.", 0380);
            ("Z<", 0381);
            ("z<", 0382);
            ("O9", 0416);
            ("o9", 0417);
            ("OI", 0418);
            ("oi", 0419);
            ("yr", 0422);
            ("U9", 0431);
            ("u9", 0432);
            ("Z/", 0437);
            ("z/", 0438);
            ("ED", 0439);
            ("A<", 0461);
            ("a<", 0462);
            ("I<", 0463);
            ("i<", 0464);
            ("O<", 0465);
            ("o<", 0466);
            ("U<", 0467);
            ("u<", 0468);
            ("A1", 0478);
            ("a1", 0479);
            ("A7", 0480);
            ("a7", 0481);
            ("A3", 0482);
            ("a3", 0483);
            ("G/", 0484);
            ("g/", 0485);
            ("G<", 0486);
            ("g<", 0487);
            ("K<", 0488);
            ("k<", 0489);
            ("O;", 0490);
            ("o;", 0491);
            ("O1", 0492);
            ("o1", 0493);
            ("EZ", 0494);
            ("ez", 0495);
            ("j<", 0496);
            ("G'", 0500);
            ("g'", 0501);
            (";S", 0703);
            ("'<", 0711);
            ("'(", 0728);
            ("'.", 0729);
            ("'0", 0730);
            ("';", 0731);
            ("'\"", 0733);
            ("A%", 0902);
            ("E%", 0904);
            ("Y%", 0905);
            ("I%", 0906);
            ("O%", 0908);
            ("U%", 0910);
            ("W%", 0911);
            ("i3", 0912);
            ("A*", 0913);
            ("B*", 0914);
            ("G*", 0915);
            ("D*", 0916);
            ("E*", 0917);
            ("Z*", 0918);
            ("Y*", 0919);
            ("H*", 0920);
            ("I*", 0921);
            ("K*", 0922);
            ("L*", 0923);
            ("M*", 0924);
            ("N*", 0925);
            ("C*", 0926);
            ("O*", 0927);
            ("P*", 0928);
            ("R*", 0929);
            ("S*", 0931);
            ("T*", 0932);
            ("U*", 0933);
            ("F*", 0934);
            ("X*", 0935);
            ("Q*", 0936);
            ("W*", 0937);
            ("J*", 0938);
            ("V*", 0939);
            ("a%", 0940);
            ("e%", 0941);
            ("y%", 0942);
            ("i%", 0943);
            ("u3", 0944);
            ("a*", 0945);
            ("b*", 0946);
            ("g*", 0947);
            ("d*", 0948);
            ("e*", 0949);
            ("z*", 0950);
            ("y*", 0951);
            ("h*", 0952);
            ("i*", 0953);
            ("k*", 0954);
            ("l*", 0955);
            ("m*", 0956);
            ("n*", 0957);
            ("c*", 0958);
            ("o*", 0959);
            ("p*", 0960);
            ("r*", 0961);
            ("*s", 0962);
            ("s*", 0963);
            ("t*", 0964);
            ("u*", 0965);
            ("f*", 0966);
            ("x*", 0967);
            ("q*", 0968);
            ("w*", 0969);
            ("j*", 0970);
            ("v*", 0971);
            ("o%", 0972);
            ("u%", 0973);
            ("w%", 0974);
            ("'G", 0984);
            (",G", 0985);
            ("T3", 0986);
            ("t3", 0987);
            ("M3", 0988);
            ("m3", 0989);
            ("K3", 0990);
            ("k3", 0991);
            ("P3", 0992);
            ("p3", 0993);
            ("'%", 1012);
            ("j3", 1013);
            ("IO", 1025);
            ("D%", 1026);
            ("G%", 1027);
            ("IE", 1028);
            ("DS", 1029);
            ("II", 1030);
            ("YI", 1031);
            ("J%", 1032);
            ("LJ", 1033);
            ("NJ", 1034);
            ("Ts", 1035);
            ("KJ", 1036);
            ("V%", 1038);
            ("DZ", 1039);
            ("A=", 1040);
            ("B=", 1041);
            ("V=", 1042);
            ("G=", 1043);
            ("D=", 1044);
            ("E=", 1045);
            ("Z%", 1046);
            ("Z=", 1047);
            ("I=", 1048);
            ("J=", 1049);
            ("K=", 1050);
            ("L=", 1051);
            ("M=", 1052);
            ("N=", 1053);
            ("O=", 1054);
            ("P=", 1055);
            ("R=", 1056);
            ("S=", 1057);
            ("T=", 1058);
            ("U=", 1059);
            ("F=", 1060);
            ("H=", 1061);
            ("C=", 1062);
            ("C%", 1063);
            ("S%", 1064);
            ("Sc", 1065);
            ("=\"", 1066);
            ("Y=", 1067);
            ("%\"", 1068);
            ("JE", 1069);
            ("JU", 1070);
            ("JA", 1071);
            ("a=", 1072);
            ("b=", 1073);
            ("v=", 1074);
            ("g=", 1075);
            ("d=", 1076);
            ("e=", 1077);
            ("z%", 1078);
            ("z=", 1079);
            ("i=", 1080);
            ("j=", 1081);
            ("k=", 1082);
            ("l=", 1083);
            ("m=", 1084);
            ("n=", 1085);
            ("o=", 1086);
            ("p=", 1087);
            ("r=", 1088);
            ("s=", 1089);
            ("t=", 1090);
            ("u=", 1091);
            ("f=", 1092);
            ("h=", 1093);
            ("c=", 1094);
            ("c%", 1095);
            ("s%", 1096);
            ("sc", 1097);
            ("='", 1098);
            ("y=", 1099);
            ("%'", 1100);
            ("je", 1101);
            ("ju", 1102);
            ("ja", 1103);
            ("io", 1105);
            ("d%", 1106);
            ("g%", 1107);
            ("ie", 1108);
            ("ds", 1109);
            ("ii", 1110);
            ("yi", 1111);
            ("j%", 1112);
            ("lj", 1113);
            ("nj", 1114);
            ("ts", 1115);
            ("kj", 1116);
            ("v%", 1118);
            ("dz", 1119);
            ("Y3", 1122);
            ("y3", 1123);
            ("O3", 1130);
            ("o3", 1131);
            ("F3", 1138);
            ("f3", 1139);
            ("V3", 1140);
            ("v3", 1141);
            ("C3", 1152);
            ("c3", 1153);
            ("G3", 1168);
            ("g3", 1169);
            ("A+", 1488);
            ("B+", 1489);
            ("G+", 1490);
            ("D+", 1491);
            ("H+", 1492);
            ("W+", 1493);
            ("Z+", 1494);
            ("X+", 1495);
            ("Tj", 1496);
            ("J+", 1497);
            ("K%", 1498);
            ("K+", 1499);
            ("L+", 1500);
            ("M%", 1501);
            ("M+", 1502);
            ("N%", 1503);
            ("N+", 1504);
            ("S+", 1505);
            ("E+", 1506);
            ("P%", 1507);
            ("P+", 1508);
            ("Zj", 1509);
            ("ZJ", 1510);
            ("Q+", 1511);
            ("R+", 1512);
            ("Sh", 1513);
            ("T+", 1514);
            (",+", 1548);
            (";+", 1563);
            ("?+", 1567);
            ("H'", 1569);
            ("aM", 1570);
            ("aH", 1571);
            ("wH", 1572);
            ("ah", 1573);
            ("yH", 1574);
            ("a+", 1575);
            ("b+", 1576);
            ("tm", 1577);
            ("t+", 1578);
            ("tk", 1579);
            ("g+", 1580);
            ("hk", 1581);
            ("x+", 1582);
            ("d+", 1583);
            ("dk", 1584);
            ("r+", 1585);
            ("z+", 1586);
            ("s+", 1587);
            ("sn", 1588);
            ("c+", 1589);
            ("dd", 1590);
            ("tj", 1591);
            ("zH", 1592);
            ("e+", 1593);
            ("i+", 1594);
            ("++", 1600);
            ("f+", 1601);
            ("q+", 1602);
            ("k+", 1603);
            ("l+", 1604);
            ("m+", 1605);
            ("n+", 1606);
            ("h+", 1607);
            ("w+", 1608);
            ("j+", 1609);
            ("y+", 1610);
            (":+", 1611);
            ("\"+", 1612);
            ("=+", 1613);
            ("/+", 1614);
            ("'+", 1615);
            ("1+", 1616);
            ("3+", 1617);
            ("0+", 1618);
            ("aS", 1648);
            ("p+", 1662);
            ("v+", 1700);
            ("gf", 1711);
            ("0a", 1776);
            ("1a", 1777);
            ("2a", 1778);
            ("3a", 1779);
            ("4a", 1780);
            ("5a", 1781);
            ("6a", 1782);
            ("7a", 1783);
            ("8a", 1784);
            ("9a", 1785);
            ("B.", 7682);
            ("b.", 7683);
            ("B_", 7686);
            ("b_", 7687);
            ("D.", 7690);
            ("d.", 7691);
            ("D_", 7694);
            ("d_", 7695);
            ("D,", 7696);
            ("d,", 7697);
            ("F.", 7710);
            ("f.", 7711);
            ("G-", 7712);
            ("g-", 7713);
            ("H.", 7714);
            ("h.", 7715);
            ("H:", 7718);
            ("h:", 7719);
            ("H,", 7720);
            ("h,", 7721);
            ("K'", 7728);
            ("k'", 7729);
            ("K_", 7732);
            ("k_", 7733);
            ("L_", 7738);
            ("l_", 7739);
            ("M'", 7742);
            ("m'", 7743);
            ("M.", 7744);
            ("m.", 7745);
            ("N.", 7748);
            ("n.", 7749);
            ("N_", 7752);
            ("n_", 7753);
            ("P'", 7764);
            ("p'", 7765);
            ("P.", 7766);
            ("p.", 7767);
            ("R.", 7768);
            ("r.", 7769);
            ("R_", 7774);
            ("r_", 7775);
            ("S.", 7776);
            ("s.", 7777);
            ("T.", 7786);
            ("t.", 7787);
            ("T_", 7790);
            ("t_", 7791);
            ("V?", 7804);
            ("v?", 7805);
            ("W!", 7808);
            ("w!", 7809);
            ("W'", 7810);
            ("w'", 7811);
            ("W:", 7812);
            ("w:", 7813);
            ("W.", 7814);
            ("w.", 7815);
            ("X.", 7818);
            ("x.", 7819);
            ("X:", 7820);
            ("x:", 7821);
            ("Y.", 7822);
            ("y.", 7823);
            ("Z>", 7824);
            ("z>", 7825);
            ("Z_", 7828);
            ("z_", 7829);
            ("h_", 7830);
            ("t:", 7831);
            ("w0", 7832);
            ("y0", 7833);
            ("A2", 7842);
            ("a2", 7843);
            ("E2", 7866);
            ("e2", 7867);
            ("E?", 7868);
            ("e?", 7869);
            ("I2", 7880);
            ("i2", 7881);
            ("O2", 7886);
            ("o2", 7887);
            ("U2", 7910);
            ("u2", 7911);
            ("Y!", 7922);
            ("y!", 7923);
            ("Y2", 7926);
            ("y2", 7927);
            ("Y?", 7928);
            ("y?", 7929);
            (";'", 7936);
            (",'", 7937);
            (";!", 7938);
            (",!", 7939);
            ("?;", 7940);
            ("?,", 7941);
            ("!:", 7942);
            ("?:", 7943);
            ("1N", 8194);
            ("1M", 8195);
            ("3M", 8196);
            ("4M", 8197);
            ("6M", 8198);
            ("1T", 8201);
            ("1H", 8202);
            ("-1", 8208);
            ("-N", 8211);
            ("-M", 8212);
            ("-3", 8213);
            ("!2", 8214);
            ("=2", 8215);
            ("'6", 8216);
            ("'9", 8217);
            (".9", 8218);
            ("9'", 8219);
            ("\"6", 8220);
            ("\"9", 8221);
            (":9", 8222);
            ("9\"", 8223);
            ("/-", 8224);
            ("/=", 8225);
            ("..", 8229);
            (",.", 8230);
            ("%0", 8240);
            ("1'", 8242);
            ("2'", 8243);
            ("3'", 8244);
            ("1\"", 8245);
            ("2\"", 8246);
            ("3\"", 8247);
            ("Ca", 8248);
            ("<1", 8249);
            (">1", 8250);
            (":X", 8251);
            ("'-", 8254);
            ("/f", 8260);
            ("0S", 8304);
            ("4S", 8308);
            ("5S", 8309);
            ("6S", 8310);
            ("7S", 8311);
            ("8S", 8312);
            ("9S", 8313);
            ("+S", 8314);
            ("-S", 8315);
            ("=S", 8316);
            ("(S", 8317);
            (")S", 8318);
            ("nS", 8319);
            ("0s", 8320);
            ("1s", 8321);
            ("2s", 8322);
            ("3s", 8323);
            ("4s", 8324);
            ("5s", 8325);
            ("6s", 8326);
            ("7s", 8327);
            ("8s", 8328);
            ("9s", 8329);
            ("+s", 8330);
            ("-s", 8331);
            ("=s", 8332);
            ("(s", 8333);
            (")s", 8334);
            ("Li", 8356);
            ("Pt", 8359);
            ("W=", 8361);
            ("Eu", 8364);
            ("=R", 8381);
            ("=P", 8381);
            ("oC", 8451);
            ("co", 8453);
            ("oF", 8457);
            ("N0", 8470);
            ("PO", 8471);
            ("Rx", 8478);
            ("SM", 8480);
            ("TM", 8482);
            ("Om", 8486);
            ("AO", 8491);
            ("13", 8531);
            ("23", 8532);
            ("15", 8533);
            ("25", 8534);
            ("35", 8535);
            ("45", 8536);
            ("16", 8537);
            ("56", 8538);
            ("18", 8539);
            ("38", 8540);
            ("58", 8541);
            ("78", 8542);
            ("1R", 8544);
            ("2R", 8545);
            ("3R", 8546);
            ("4R", 8547);
            ("5R", 8548);
            ("6R", 8549);
            ("7R", 8550);
            ("8R", 8551);
            ("9R", 8552);
            ("aR", 8553);
            ("bR", 8554);
            ("cR", 8555);
            ("1r", 8560);
            ("2r", 8561);
            ("3r", 8562);
            ("4r", 8563);
            ("5r", 8564);
            ("6r", 8565);
            ("7r", 8566);
            ("8r", 8567);
            ("9r", 8568);
            ("ar", 8569);
            ("br", 8570);
            ("cr", 8571);
            ("<-", 8592);
            ("-!", 8593);
            ("->", 8594);
            ("-v", 8595);
            ("<>", 8596);
            ("UD", 8597);
            ("<=", 8656);
            ("=>", 8658);
            ("==", 8660);
            ("FA", 8704);
            ("dP", 8706);
            ("TE", 8707);
            ("/0", 8709);
            ("DE", 8710);
            ("NB", 8711);
            ("(-", 8712);
            ("-)", 8715);
            ("*P", 8719);
            ("+Z", 8721);
            ("-2", 8722);
            ("-+", 8723);
            ("*-", 8727);
            ("Ob", 8728);
            ("Sb", 8729);
            ("RT", 8730);
            ("0(", 8733);
            ("00", 8734);
            ("-L", 8735);
            ("-V", 8736);
            ("PP", 8741);
            ("AN", 8743);
            ("OR", 8744);
            ("(U", 8745);
            (")U", 8746);
            ("In", 8747);
            ("DI", 8748);
            ("Io", 8750);
            (".:", 8756);
            (":.", 8757);
            (":R", 8758);
            ("::", 8759);
            ("?1", 8764);
            ("CG", 8766);
            ("?-", 8771);
            ("?=", 8773);
            ("?2", 8776);
            ("=?", 8780);
            ("HI", 8787);
            ("!=", 8800);
            ("=3", 8801);
            ("=<", 8804);
            (">=", 8805);
            ("<*", 8810);
            ("*>", 8811);
            ("!<", 8814);
            ("!>", 8815);
            ("(C", 8834);
            (")C", 8835);
            ("(_", 8838);
            (")_", 8839);
            ("0.", 8857);
            ("02", 8858);
            ("-T", 8869);
            (".P", 8901);
            (":3", 8942);
            (".3", 8943);
            ("Eh", 8962);
            ("<7", 8968);
            (">7", 8969);
            ("7<", 8970);
            ("7>", 8971);
            ("NI", 8976);
            ("(A", 8978);
            ("TR", 8981);
            ("Iu", 8992);
            ("Il", 8993);
            ("</", 9001);
            ("/>", 9002);
            ("Vs", 9251);
            ("1h", 9280);
            ("3h", 9281);
            ("2h", 9282);
            ("4h", 9283);
            ("1j", 9286);
            ("2j", 9287);
            ("3j", 9288);
            ("4j", 9289);
            ("1.", 9352);
            ("2.", 9353);
            ("3.", 9354);
            ("4.", 9355);
            ("5.", 9356);
            ("6.", 9357);
            ("7.", 9358);
            ("8.", 9359);
            ("9.", 9360);
            ("hh", 9472);
            ("HH", 9473);
            ("vv", 9474);
            ("VV", 9475);
            ("3-", 9476);
            ("3_", 9477);
            ("3!", 9478);
            ("3/", 9479);
            ("4-", 9480);
            ("4_", 9481);
            ("4!", 9482);
            ("4/", 9483);
            ("dr", 9484);
            ("dR", 9485);
            ("Dr", 9486);
            ("DR", 9487);
            ("dl", 9488);
            ("dL", 9489);
            ("Dl", 9490);
            ("LD", 9491);
            ("ur", 9492);
            ("uR", 9493);
            ("Ur", 9494);
            ("UR", 9495);
            ("ul", 9496);
            ("uL", 9497);
            ("Ul", 9498);
            ("UL", 9499);
            ("vr", 9500);
            ("vR", 9501);
            ("Vr", 9504);
            ("VR", 9507);
            ("vl", 9508);
            ("vL", 9509);
            ("Vl", 9512);
            ("VL", 9515);
            ("dh", 9516);
            ("dH", 9519);
            ("Dh", 9520);
            ("DH", 9523);
            ("uh", 9524);
            ("uH", 9527);
            ("Uh", 9528);
            ("UH", 9531);
            ("vh", 9532);
            ("vH", 9535);
            ("Vh", 9538);
            ("VH", 9547);
            ("FD", 9585);
            ("BD", 9586);
            ("TB", 9600);
            ("LB", 9604);
            ("FB", 9608);
            ("lB", 9612);
            ("RB", 9616);
            (".S", 9617);
            (":S", 9618);
            ("?S", 9619);
            ("fS", 9632);
            ("OS", 9633);
            ("RO", 9634);
            ("Rr", 9635);
            ("RF", 9636);
            ("RY", 9637);
            ("RH", 9638);
            ("RZ", 9639);
            ("RK", 9640);
            ("RX", 9641);
            ("sB", 9642);
            ("SR", 9644);
            ("Or", 9645);
            ("UT", 9650);
            ("uT", 9651);
            ("PR", 9654);
            ("Tr", 9655);
            ("Dt", 9660);
            ("dT", 9661);
            ("PL", 9664);
            ("Tl", 9665);
            ("Db", 9670);
            ("Dw", 9671);
            ("LZ", 9674);
            ("0m", 9675);
            ("0o", 9678);
            ("0M", 9679);
            ("0L", 9680);
            ("0R", 9681);
            ("Sn", 9688);
            ("Ic", 9689);
            ("Fd", 9698);
            ("Bd", 9699);
            ("*2", 9733);
            ("*1", 9734);
            ("<H", 9756);
            (">H", 9758);
            ("0u", 9786);
            ("0U", 9787);
            ("SU", 9788);
            ("Fm", 9792);
            ("Ml", 9794);
            ("cS", 9824);
            ("cH", 9825);
            ("cD", 9826);
            ("cC", 9827);
            ("Md", 9833);
            ("M8", 9834);
            ("M2", 9835);
            ("Mb", 9837);
            ("Mx", 9838);
            ("MX", 9839);
            ("OK", 10003);
            ("XX", 10007);
            ("-X", 10016);
            ("IS", 12288);
            (",_", 12289);
            ("._", 12290);
            ("+\"", 12291);
            ("+_", 12292);
            ("*_", 12293);
            (";_", 12294);
            ("0_", 12295);
            ("<+", 12298);
            (">+", 12299);
            ("<'", 12300);
            (">'", 12301);
            ("<\"", 12302);
            (">\"", 12303);
            ("(\"", 12304);
            (")\"", 12305);
            ("=T", 12306);
            ("=_", 12307);
            ("('", 12308);
            (")'", 12309);
            ("(I", 12310);
            (")I", 12311);
            ("-?", 12316);
            ("A5", 12353);
            ("a5", 12354);
            ("I5", 12355);
            ("i5", 12356);
            ("U5", 12357);
            ("u5", 12358);
            ("E5", 12359);
            ("e5", 12360);
            ("O5", 12361);
            ("o5", 12362);
            ("ka", 12363);
            ("ga", 12364);
            ("ki", 12365);
            ("gi", 12366);
            ("ku", 12367);
            ("gu", 12368);
            ("ke", 12369);
            ("ge", 12370);
            ("ko", 12371);
            ("go", 12372);
            ("sa", 12373);
            ("za", 12374);
            ("si", 12375);
            ("zi", 12376);
            ("su", 12377);
            ("zu", 12378);
            ("se", 12379);
            ("ze", 12380);
            ("so", 12381);
            ("zo", 12382);
            ("ta", 12383);
            ("da", 12384);
            ("ti", 12385);
            ("di", 12386);
            ("tU", 12387);
            ("tu", 12388);
            ("du", 12389);
            ("te", 12390);
            ("de", 12391);
            ("to", 12392);
            ("do", 12393);
            ("na", 12394);
            ("ni", 12395);
            ("nu", 12396);
            ("ne", 12397);
            ("no", 12398);
            ("ha", 12399);
            ("ba", 12400);
            ("pa", 12401);
            ("hi", 12402);
            ("bi", 12403);
            ("pi", 12404);
            ("hu", 12405);
            ("bu", 12406);
            ("pu", 12407);
            ("he", 12408);
            ("be", 12409);
            ("pe", 12410);
            ("ho", 12411);
            ("bo", 12412);
            ("po", 12413);
            ("ma", 12414);
            ("mi", 12415);
            ("mu", 12416);
            ("me", 12417);
            ("mo", 12418);
            ("yA", 12419);
            ("ya", 12420);
            ("yU", 12421);
            ("yu", 12422);
            ("yO", 12423);
            ("yo", 12424);
            ("ra", 12425);
            ("ri", 12426);
            ("ru", 12427);
            ("re", 12428);
            ("ro", 12429);
            ("wA", 12430);
            ("wa", 12431);
            ("wi", 12432);
            ("we", 12433);
            ("wo", 12434);
            ("n5", 12435);
            ("vu", 12436);
            ("\"5", 12443);
            ("05", 12444);
            ("*5", 12445);
            ("+5", 12446);
            ("a6", 12449);
            ("A6", 12450);
            ("i6", 12451);
            ("I6", 12452);
            ("u6", 12453);
            ("U6", 12454);
            ("e6", 12455);
            ("E6", 12456);
            ("o6", 12457);
            ("O6", 12458);
            ("Ka", 12459);
            ("Ga", 12460);
            ("Ki", 12461);
            ("Gi", 12462);
            ("Ku", 12463);
            ("Gu", 12464);
            ("Ke", 12465);
            ("Ge", 12466);
            ("Ko", 12467);
            ("Go", 12468);
            ("Sa", 12469);
            ("Za", 12470);
            ("Si", 12471);
            ("Zi", 12472);
            ("Su", 12473);
            ("Zu", 12474);
            ("Se", 12475);
            ("Ze", 12476);
            ("So", 12477);
            ("Zo", 12478);
            ("Ta", 12479);
            ("Da", 12480);
            ("Ti", 12481);
            ("Di", 12482);
            ("TU", 12483);
            ("Tu", 12484);
            ("Du", 12485);
            ("Te", 12486);
            ("De", 12487);
            ("To", 12488);
            ("Do", 12489);
            ("Na", 12490);
            ("Ni", 12491);
            ("Nu", 12492);
            ("Ne", 12493);
            ("No", 12494);
            ("Ha", 12495);
            ("Ba", 12496);
            ("Pa", 12497);
            ("Hi", 12498);
            ("Bi", 12499);
            ("Pi", 12500);
            ("Hu", 12501);
            ("Bu", 12502);
            ("Pu", 12503);
            ("He", 12504);
            ("Be", 12505);
            ("Pe", 12506);
            ("Ho", 12507);
            ("Bo", 12508);
            ("Po", 12509);
            ("Ma", 12510);
            ("Mi", 12511);
            ("Mu", 12512);
            ("Me", 12513);
            ("Mo", 12514);
            ("YA", 12515);
            ("Ya", 12516);
            ("YU", 12517);
            ("Yu", 12518);
            ("YO", 12519);
            ("Yo", 12520);
            ("Ra", 12521);
            ("Ri", 12522);
            ("Ru", 12523);
            ("Re", 12524);
            ("Ro", 12525);
            ("WA", 12526);
            ("Wa", 12527);
            ("Wi", 12528);
            ("We", 12529);
            ("Wo", 12530);
            ("N6", 12531);
            ("Vu", 12532);
            ("KA", 12533);
            ("KE", 12534);
            ("Va", 12535);
            ("Vi", 12536);
            ("Ve", 12537);
            ("Vo", 12538);
            (".6", 12539);
            ("-6", 12540);
            ("*6", 12541);
            ("+6", 12542);
            ("b4", 12549);
            ("p4", 12550);
            ("m4", 12551);
            ("f4", 12552);
            ("d4", 12553);
            ("t4", 12554);
            ("n4", 12555);
            ("l4", 12556);
            ("g4", 12557);
            ("k4", 12558);
            ("h4", 12559);
            ("j4", 12560);
            ("q4", 12561);
            ("x4", 12562);
            ("zh", 12563);
            ("ch", 12564);
            ("sh", 12565);
            ("r4", 12566);
            ("z4", 12567);
            ("c4", 12568);
            ("s4", 12569);
            ("a4", 12570);
            ("o4", 12571);
            ("e4", 12572);
            ("ai", 12574);
            ("ei", 12575);
            ("au", 12576);
            ("ou", 12577);
            ("an", 12578);
            ("en", 12579);
            ("aN", 12580);
            ("eN", 12581);
            ("er", 12582);
            ("i4", 12583);
            ("u4", 12584);
            ("iu", 12585);
            ("v4", 12586);
            ("nG", 12587);
            ("gn", 12588);
            ("1c", 12832);
            ("2c", 12833);
            ("3c", 12834);
            ("4c", 12835);
            ("5c", 12836);
            ("6c", 12837);
            ("7c", 12838);
            ("8c", 12839);
            ("9c", 12840);
            ("ff", 64256);
            ("fi", 64257);
            ("fl", 64258);
            ("ft", 64261);
            ("st", 64262);
        |]
        |> Seq.map (fun (pair, code) -> (pair.[0], pair.[1], code))
        |> List.ofSeq

    let GetText (code: int) =
        System.Char.ConvertFromUtf32(code)

    let AddToMap (digraphMap: IDigraphMap) (digraphList: (char * char * int) seq) =
        
        let addDigraph (char1, char2, code: int) =
            digraphMap.Map char1 char2 code

        digraphList
        |> Seq.iter addDigraph
